split: preliminary for distinguishing read/write errors (& reflink)#13105
split: preliminary for distinguishing read/write errors (& reflink)#13105oech3 wants to merge 1 commit into
Conversation
Merging this PR will improve performance by 9.75%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ⚡ | Simulation | split_bytes |
311.7 µs | 284 µs | +9.75% |
Tip
Curious why this is faster? Comment @codspeedbot explain why this is faster on this PR, or directly use the CodSpeed MCP with your agent.
Comparing oech3:split-unbuf (9ad6387) with main (e73b8a6)
Footnotes
-
46 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
|
GNU testsuite comparison: |
| Strategy::Bytes(chunk_size) => { | ||
| let mut writer = ByteChunkWriter::new(chunk_size, settings)?; | ||
| copy(&mut reader, &mut writer) | ||
| Ok(writer.copy(&mut reader, io_blksize)?) |
There was a problem hiding this comment.
While CodSpeed reported performance gain, this is double buffered by BufReader. I'll fix it at different PR.
GNU shows file path which caused I/O error. We need to separate out read/write instead of using
std::io::copyto do same thing. Addcopymethod.(This refactoring is useful for adding reflink support in the future BTW...)